// 联合类型
let myFavoriteNumber: string | number
myFavoriteNumber = 'one'
myFavoriteNumber = 1

// 类型别名
type Message = string | string[]
let greet = (message: Message) => {
    console.log(message)
}
greet('well')
greet(['liu', 'guo', 'wei'])

// 交叉类型
// 合并原子类型没有意义，因为不存在，肯定为never
{
    type Useless = string & number;
}
// 将多个接口类型合并成一个类型
type IntersectionType = { id: number; name: string; } & { age: number };
const mixed: IntersectionType = {
  id: 1,
  name: 'name',
  age: 18
}

// 类型冲突
/* type IntersectionTypeConfit = { id: number} & { id: string}
const mixedConfit: IntersectionTypeConfit = {
    id: 1 // 不能将类型“number”分配给类型“never”
} */